package arithmetic;

import java.util.Scanner;

/**
 * 知识点：
 * 1.ascii码 0~9/48~57  A~Z/65~90 a~z/97~122
 * 2.Scanner.nextLine();
 * 3.String.toCharArray();
 * 4.String.toLowerCase();
 * 5.String.valueOf();
 * HJ21 简单密码
 * 描述
 * 现在有一种密码变换算法。
 * 九键手机键盘上的数字与字母的对应： 1--1， abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0，把密码中出现的小写字母都变成九键键盘对应的数字，如：a 变成 2，x 变成 9.
 * 而密码中出现的大写字母则变成小写之后往后移一位，如：X ，先变成小写，再往后移一位，变成了 y ，例外：Z 往后移是 a 。
 * 数字和其它的符号都不做变换。
 * 数据范围： 输入的字符串长度满足 1≤n≤100
 * 输入描述：
 * 输入一组密码，长度不超过100个字符。
 *
 * 输出描述：
 * 输出密码变换后的字符串
 *
 * 示例1
 * 输入：
 * YUANzhi1987
 * 复制
 * 输出：
 * zvbo9441987
 */
public class TestHW21 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        String str = in.nextLine();
        if(str.isEmpty() || str.length()>100)return;
        //-------------
        // String str1 = test1('Z');
        // System.out.println(str1);
        // String str2 = test('n');
        // System.out.println(str2);
        //---------------
        deal(str);
    }
    //处理字符串
    public static void deal(String str){
        String result = "";
        char[] chs = str.toCharArray();
        String strR1 = "";
        for(int i = 0; i<chs.length; i++){
            char ch = chs[i];
            if(ch>=65 && ch<=90){
                strR1 = test1(ch);
                result+=strR1;
            }else if(ch>=97 && ch<=122){
                strR1 = test(ch);
                result += strR1;
            }else{
                result+=ch;
            }
        }
        System.out.println(result);
    }
    //大写字母转小写字母
    public static String test1(char ch){
        //65~90
        String str = String.valueOf(ch);
        String low = str.toLowerCase();
        // System.out.println(low);
        char chLow = low.toCharArray()[0];
        int i = chLow+1;
        if(i > 122){
            i = 97;
        }
        char ch2 = (char)i;
        str = String.valueOf(ch2);
        return str;
    }

    //小写字母转成数字
    public static String test(char ch){
        String str = "";
        //97~122
        //abc
        if(ch>=97 && ch<=99){
            str = "2";
        }
        //def
        if(ch>=100 && ch<=102){
            str = "3";
        }
        //ghi
        if(ch>=103 && ch<=105){
            str = "4";
        }
        //jkl
        if(ch>=106 && ch<=108){
            str = "5";
        }
        //mno
        if(ch>=109 && ch<=111){
            str = "6";
        }

        //pqrs
        if(ch>=112 && ch<=115){
            str = "7";
        }

        //tuv
        if(ch>=116 && ch<=118){
            str = "8";
        }
        //wxyz
        if(ch>=119 && ch<=122){
            str = "9";
        }
        return str;

    }
}
